package cfca.paperless.client.servlet._1_basic._1_04_autoConcatPdfListWithPath;

import cfca.paperless.client.servlet.PaperlessClient;
import cfca.paperless.client.servlet.PaperlessConfig;
import cfca.paperless.client.util.Base64;
import cfca.paperless.client.util.GUID;
import cfca.paperless.client.util.IoUtil;
import cfca.paperless.client.util.StringUtil;

/**
 * @Description 合并PDF列表接口，使用示例。
 * 指定PDF文件路径或PDF文件数据。
 * 
 * @Author dell
 * @Date 2016-5-23
 * @CodeReviewer TODO
 */
public class autoConcatPdfListWithPathTest01 {

    public static void main(String[] args) throws Exception {
        
        long timeStart = System.currentTimeMillis();// 开始时间

        System.out.println("autoConcatPdfListWithPathTest01 START");

        PaperlessClient clientBean = new PaperlessClient(PaperlessConfig.url, 10000, 60000);// 无纸化基本接口的访问URL

        String pdfStr1 = "D:/TestData/11.pdf";
        String pdfSuffix = IoUtil.getFileNameSuffix(pdfStr1);
        if(!PaperlessConfig.PDF_FILE_SUFFIX.equals(pdfSuffix)){
            throw new Exception("所选文件不是pdf文件");
        }
        
        String pdfStr2 = "D:/TestData/file.pdf";
        pdfSuffix = IoUtil.getFileNameSuffix(pdfStr2);
        if(!PaperlessConfig.PDF_FILE_SUFFIX.equals(pdfSuffix)){
            throw new Exception("所选文件不是pdf文件");
        }
 
        StringBuilder pdfListXmlString = new StringBuilder();
        
        pdfListXmlString.append("<List>");
        pdfListXmlString.append("<InputFilePath>").append(Base64.encode(pdfStr1, PaperlessConfig.DEFAULT_CHARSET)).append("</InputFilePath>");
        pdfListXmlString.append("<InputFilePath>").append(Base64.encode(pdfStr2, PaperlessConfig.DEFAULT_CHARSET)).append("</InputFilePath>");
  
        pdfListXmlString.append("</List>");

        // 保存到临时PDF表中的pdfId，符合唯一约束（可以为空）
        String outputFilePath = "D:/TestData/output/autoConcatPdfListWithPathTest01.pdf";
        // 操作员编码或者机构号
        String operatorCode = PaperlessConfig.operatorCode;
        // 渠道编码，可以为空
        String channelCode = PaperlessConfig.channelCode;

        String systemNo = GUID.generateId();//系统流水号
        
        String result = clientBean.autoConcatPdfListWithPath(systemNo,pdfListXmlString.toString(),outputFilePath, operatorCode, channelCode);

        String code = StringUtil.getNodeText(result, "Code");
 
        // 返回值Code等于200代表后台处理成功
        if (code.equals("200")) {
            System.out.println("autoConcatPdfListWithPathTest01 END OK");
            outputFilePath = StringUtil.getNodeText(result, "OutputFilePath");
            System.out.println("outputFilePath:" + outputFilePath);
        }else {
            // 处理结果为异常，打印出错误码和错误信息
            System.out.println("autoConcatPdfListWithPathTest01 END NG");
            System.out.println(result);
        }
 
        long timeEnd = System.currentTimeMillis();// 结束时间
        System.out.println("########## autoConcatPdfListWithPdfIdTest01 time used:" + (timeEnd - timeStart) + "##########");
    }

}
